.. note:: Ciao, benvenuto nella Community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino e ESP32 con altri appassionati. **Perché unirti a noi?** - **Supporto Esperto**: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team. - **Impara e Condividi**: Scambia consigli e tutorial per migliorare le tue competenze. - **Anteprime Esclusive**: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime. - **Sconti Speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni Festive e Omaggi**: Partecipa a giveaway e promozioni festive. 👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso! 2.1.2 Interruttore a Scorrimento =================================== Introduzione --------------- In questa lezione impareremo a utilizzare un interruttore a scorrimento. Solitamente, l'interruttore a scorrimento è saldato sul PCB come interruttore di alimentazione, ma qui lo inseriamo nella breadboard, anche se potrebbe non essere ben saldo, per dimostrarne la funzione. Componenti ------------- .. image:: img/list_2.1.2_slide_switch.png Principio ------------- **Interruttore a Scorrimento** .. image:: img/image156.jpeg Un interruttore a scorrimento, come suggerisce il nome, funziona facendo scorrere la leva per connettere o interrompere il circuito, commutando così i circuiti. I tipi più comuni sono SPDT, SPTT, DPDT, DPTT, e vengono utilizzati frequentemente nei circuiti a bassa tensione. Presenta caratteristiche di flessibilità e stabilità, ed è ampiamente utilizzato in strumenti elettrici e giocattoli elettronici. Funzionamento: Imposta il pin centrale come fisso. Quando fai scorrere l'interruttore a sinistra, i due pin a sinistra sono collegati; quando lo fai scorrere a destra, si collegano i due pin a destra. In questo modo, funziona come un interruttore per connettere o disconnettere i circuiti. Vedi la figura seguente: .. image:: img/image304.png Il simbolo del circuito dell'interruttore a scorrimento è mostrato di seguito. Il pin 2 nella figura si riferisce al pin centrale. .. image:: img/image159.png **Condensatore** Un condensatore è un componente che ha la capacità di immagazzinare energia sotto forma di carica elettrica o di produrre una differenza di potenziale (tensione statica) tra le sue piastre, come una piccola batteria ricaricabile. Unità standard di capacità: Microfarad (μF) 1μF = 1/1.000.000 = 0,000001 = :math:`10^{- 6}` F Nanofarad (nF) 1nF = 1/1.000.000.000 = 0,000000001 = :math:`10^{- 9}`\ F Picofarad (pF) 1pF = 1/1.000.000.000.000 = 0,000000000001 = :math:`10^{- 12}`\ F .. note:: Qui utilizziamo un **condensatore 104 (10 x 10^4 PF)**. Proprio come gli anelli dei resistori, i numeri sui condensatori aiutano a leggere i valori una volta assemblati sulla scheda. Le prime due cifre rappresentano il valore e l'ultima cifra indica il moltiplicatore. Pertanto, 104 rappresenta una potenza di 10 x 10 alla 4 (in pF), pari a 100 nF. Schema Elettrico -------------------- Collega il pin centrale dell’interruttore a scorrimento al GPIO17 e due LED rispettivamente ai pin GPIO22 e GPIO27. Quindi, quando sposti l'interruttore, vedrai i due LED accendersi alternativamente. .. image:: img/image305.png .. image:: img/image306.png Procedure Sperimentali -------------------------- **Passo 1:** Costruisci il circuito. .. image:: img/image161.png :width: 800 **Passo 2:** Vai alla cartella del codice. .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/c/2.1.2 **Passo 3:** Compila. .. raw:: html .. code-block:: gcc 2.1.2_Slider.c -lwiringPi **Passo 4:** Esegui il file eseguibile. .. raw:: html .. code-block:: sudo ./a.out Durante l'esecuzione del codice, collega l'interruttore a sinistra e si accenderà il LED giallo; spostandolo a destra, si accenderà il LED rosso. .. note:: Se non funziona dopo l’esecuzione, o appare un messaggio di errore: \"wiringPi.h: No such file or directory\", fai riferimento a :ref:`faq_c_nowork`. **Codice** .. code-block:: c #include #include #define slidePin 0 #define led1 3 #define led2 2 int main(void) { // Se l'inizializzazione di wiring fallisce, stampa un messaggio a schermo if(wiringPiSetup() == -1){ printf("setup wiringPi failed !"); return 1; } pinMode(slidePin, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); while(1){ // interruttore alto, led1 acceso if(digitalRead(slidePin) == 1){ digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("LED1 on\n"); delay(100); } // interruttore basso, led2 acceso if(digitalRead(slidePin) == 0){ digitalWrite(led2, LOW); digitalWrite(led1, HIGH); printf(".....LED2 on\n"); delay(100); } } return 0; } **Spiegazione del Codice** .. code-block:: c if(digitalRead(slidePin) == 1){ digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("LED1 on\n"); } Quando l’interruttore è spostato a destra, il pin centrale e quello destro sono collegati; il Raspberry Pi legge un livello alto sul pin centrale, quindi LED1 si accende e LED2 si spegne. .. code-block:: c if(digitalRead(slidePin) == 0){ digitalWrite(led2, LOW); digitalWrite(led1, HIGH); printf(".....LED2 on\n"); } Quando l’interruttore è spostato a sinistra, il pin centrale e quello sinistro sono collegati; il Raspberry Pi legge un livello basso, quindi LED2 si accende e LED1 si spegne.